///////////////////////////////////////////////////////////
//  Station.h
//  Implementation of the Class Station
//  Created on:      21-sep-2007 15:40:05
///////////////////////////////////////////////////////////

#if !defined(EA_CCE5E47D_E799_4718_AB8A_7A14FAEAA555__INCLUDED_)
#define EA_CCE5E47D_E799_4718_AB8A_7A14FAEAA555__INCLUDED_

#include <string>
#include "ViewableXML.h"
#include "ObjectDomain.h"
#include "../../indexado/fuentes/RecordHandler.h"
#include "../../indexado/fuentes/OrganizationCommons.h"

#define SIZE_STATION_SCHEMA 6

class Station : public ViewableXML, public ObjectDomain
{

public:

	Station();
	virtual ~Station();
	std::string getValor(std::string atribName);
	void loadAtribFromNode(XMLNode* node);
	void loadRegistro(void* registro);
	void saveInRegistro(void* reg);
	campo* getSchema();
	int getSchemaSize();
	campo* getPrimaryKey();
	void loadDataXML(XMLNode* node){}
	bool EsMayor(std::string atributte, Persistent *object);
	const Station & operator=(const Station&);
	std::string getKey();
	void setKey(std::string key);

	// todos los nombre de los atributos
	static campo CODE[2];
	static campo NUMBER[2];
	static campo ELEVATION[2];
	static campo LATITUDE[2];
	static campo LONGITUDE[2];
	
	static campo SCHEMA[SIZE_STATION_SCHEMA];
	
	std::string getCode();
	std::string getNumber();
	std::string getElevation();
	std::string getLatitude();
	std::string getLongitude();
	
	void setCode(std::string codigo);
	void setNumber(std::string numero);
	void setElevation(std::string elevacion);
	void setLatitude(std::string latitud);
	void setLongitude(std::string longitude);
	
	void print();
private:
	
	std::string code;
	std::string number;
	std::string elevation;
	std::string latitude;
	std::string longitude;

};
#endif // !defined(EA_CCE5E47D_E799_4718_AB8A_7A14FAEAA555__INCLUDED_)
